<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
<head>
  <link href="//gmpg.org/xfn/11" rel="profile">
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="Hugo 0.69.0" />

  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>郝朝帅的博客</title>

  
  <link type="text/css" rel="stylesheet" href="/blog/css/print.css" media="print">
  <link type="text/css" rel="stylesheet" href="/blog/css/poole.css">
  <link type="text/css" rel="stylesheet" href="/blog/css/syntax.css">
  <link type="text/css" rel="stylesheet" href="/blog/css/hyde.css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Abril+Fatface|PT+Sans:400,400i,700">


  
  <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144-precomposed.png">
  <link rel="shortcut icon" href="/favicon.png">

  
  <link href="/blog/index.xml" rel="alternate" type="application/rss+xml" title="郝朝帅的博客" />
  
</head>

  <body class="theme-base-0f ">
  <aside class="sidebar">
  <div class="container sidebar-sticky">
    <div class="sidebar-about">
      <a href="/blog/"><h1>郝朝帅的博客</h1></a>
      <p class="lead">
       我的个人博客 
      </p>
    </div>

    <nav>
      <ul class="sidebar-nav">
        <li><a href="/blog/">Home</a> </li>
        
      </ul>
    </nav>

    <p>&copy; 2020. All rights reserved. </p>
  </div>
</aside>

    <main class="content container">
    <div class="posts">
<article class="post">
  <h1 class="post-title">
    <a href="/blog/%E5%9B%BE%E7%89%87%E5%8E%8B%E7%BC%A9/">PIL图片添加文字</a>
  </h1>
  <time datetime="2020-04-29T21:39:26&#43;0800" class="post-date">Wed, Apr 29, 2020</time>
  opencv是一个强大的图像处理和计算机视觉库
安装的时候是 opencv_python，但在导入的时候采用 import cv2
安装 pip install opencv-python
# #图像处理模块 import cv2# #读图 # img = cv2.imread(&#39;./code.png&#39;,cv2.IMREAD_GRAYSCALE) # # # #写图 # cv2.imwrite(&#39;./code1.png&#39;,img) #图像压缩 #读图 img = cv2.imread(&#39;./timg2.png&#39;)# #压缩 0-9 # a=cv2.imwrite(&#39;./timg2.png&#39;,img,[cv2.IMWRITE_PNG_COMPRESSION,9]) # jpg是有损压缩，png是无损压缩 # cv2.imwrite(&#39;./timg2.png&#39;,img,[cv2.IMWRITE_PNG_COMPRESSION,9]) #[cv2.IMWRITE_PNG_COMPRESSION,0]是调整PNG图像的压缩比。 # 为0时，压缩比最小，图像的品质最好。它的压缩范围为[0，9] # # #jpg 0-100 cv2.imwrite(&#39;./timg2.png&#39;,img,[cv2.IMWRITE_JPEG_QUALITY,0])&#39;&#39;&#39;[cv2.IMWRITE_JPEG_QUAITY,50]可以实现图像的压缩。其中，50是可以改变的，取值为[0,100]0时图像可以得到极大地压缩，但是图像的品质会被大大降低。&#39;&#39;&#39;
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/pil%E5%9B%BE%E7%89%87%E6%B7%BB%E5%8A%A0%E6%96%87%E5%AD%97/">PIL图片添加文字</a>
  </h1>
  <time datetime="2020-04-29T19:01:49&#43;0800" class="post-date">Wed, Apr 29, 2020</time>
  图片添加文字
安装PLI第三方库 pip install PIL
# 导入PIL from PIL import Image,ImageDraw,ImageFont#读图 im = Image.open(&#34;./timg.jfif&#34;)# 输出（格式信息，图片大小，模式属性） print(im.format,im.size,im.mode)#生成画笔 draw = ImageDraw.Draw(im)# 字体 font=ImageFont.truetype(&#34;simsun.ttc&#34;, 40, encoding=&#34;GBK&#34;)#绘制 draw.text((1700, 1317),u&#39;车型：COVINI C6W \n作者：郝朝帅&#39;,&#39;#00FFFF&#39;,font)# draw.font((2026, 1317),&#39;COVINI C6W郝朝帅&#39;,fill=(220,20,60)) # 保存图片 im.save(&#39;timg.jfif&#39;)# 删除画笔 del draw# 打开，并查看图片 im.show()
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/django%E7%9A%84%E7%9F%A5%E8%AF%86/">django的一些常识</a>
  </h1>
  <time datetime="2020-04-27T20:05:03&#43;0800" class="post-date">Mon, Apr 27, 2020</time>
  安装django pip install django==2.0.4
django的一些理论 项目可以包含多个应用， 应用可以被多个项目使用 MTV模式 M:model，模型，负责与数据库交互 V:view，视图是核心，负责接收请求、获取数据、返回结果 T:template，模板，负责呈现内容到浏览器 MVC模式 M：model（模型） - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑，在数据变化时更新控制器。 V：view（视图） - 视图代表模型包含的数据的可视化。 C：controller（控制器） - 控制器作用于模型和视图上。它控制数据流向模型对象，并在数据变化时更新视图。它使视图与模型分离开 &#39;&#39;&#39; 从结构上看，MVC可以分成三层。 1）最上面的一层，是直接面向用户的&#34;视图层&#34;（View）。它是提供给用户的操作界面，是程序的外壳。 2）最底下的一层，是核心的&#34;数据层&#34;（Model），也就是程序需要操作的数据或信息。 3）中间的一层，就是&#34;控制层&#34;（Controller），它负责根据用户从&#34;视图层&#34;输入的指令，选取&#34;数据层&#34;中的数据，然后对其进行相应的操作，产生最终的视图结果。 &#39;&#39;&#39; 通常 一个Django model 对应一张数据表，model是以类的形式表现的 实现了ORM 对象与数据库映射 隐藏了数据访问细节 不需要写sql语句 数据取出顺序 models-&gt;views-&gt;templates 数据层-&gt;逻辑视图层-&gt;前端模板层 django命令 # 创建django项目 django-admin startproject 项目名 # 进入django项目 cd 项目名 # 创建项目app python manage.py startapp APPNAME # 数据库迁移 python manage.py makemigrations app名（缺省） //准备数据在manage.py同级目录下运行 python manage.py migrate # 启动django项目 python manage.py runserver django项目结构 my_project	#	项目名 后期可修改建议不修改 __init__.
  
  <div class="read-more-link">
    <a href="/blog/django%E7%9A%84%E7%9F%A5%E8%AF%86/">Read More…</a>
  </div>
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/%E6%BB%91%E5%8A%A8%E9%AA%8C%E8%AF%81%E7%A0%81/">滑动验证码</a>
  </h1>
  <time datetime="2020-04-26T20:05:06&#43;0800" class="post-date">Sun, Apr 26, 2020</time>
  滑动验证码 第三方滑动验证码
vue-drag-verify 1.0.6
&lt;template&gt;&lt;div&gt;&lt;tr&gt;&lt;td&gt;//滑块验证码 &lt;drag-verify:width=&#34;width&#34;:height=&#34;height&#34;:text=&#34;text&#34;ref=&#39;Verify&#39;&gt;&lt;/drag-verify&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/div&gt;&lt;/template&gt;&lt;script&gt;//导入组件import myheader from &#39;./myheader.vue&#39;// 导入滑块验证码import dragVerify from &#39;vue-drag-verify&#39;export default{data(){return{//声明滑块验证码相关数据	width:320,height:42,text:&#39;请将滑块拖动到右边&#39;} },components:{&#39;myheader&#39;:myheader},//提交事件 submit:function(){//判断是否拖动 console.log(this.$refs.Verify.isPassing)}}&lt;/script&gt;
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E9%80%BB%E8%BE%91/">用户登录逻辑</a>
  </h1>
  <time datetime="2020-04-25T20:05:06&#43;0800" class="post-date">Sat, Apr 25, 2020</time>
  #用户登录逻辑
# 导入视图类 from rest_framework.views import APIView# 导入响应模块 from rest_framework.response import Response#定义登录接口 class Login(APIView):# 请求方法为get def get(self,request):#从前端接收参数 username = request.GET.get(&#39;username&#39;,&#39;未收到用户名&#39;)password = request.GET.get(&#39;password&#39;,&#39;未收到密码&#39;)#查询用户数据表,User为用户数据表 user = User.objects.filter(username=username,password=password).first()#判断数据里有没有该用户 if user:#如果查询出来则为登录成功 return Response({&#39;code&#39;:200,&#39;message&#39;: &#39;登录成功&#39;,&#39;username&#39;: user.username,&#39;uid&#39;: user.id})# 否则返回用户名或者密码错误 return Response({&#39;code&#39;:405,&#39;message&#39;:&#39;用户名或者密码错误&#39;})
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/%E9%9A%8F%E6%9C%BA%E9%AA%8C%E8%AF%81%E7%A0%81/">隨機驗證碼</a>
  </h1>
  <time datetime="2020-04-25T20:05:06&#43;0800" class="post-date">Sat, Apr 25, 2020</time>
  #验证码
#导包 from django.http import HttpResponse#导入类视图 from django.views import View#随机库 import random#图片库 from PIL import Image#绘画库 from PIL import ImageDraw#文件流 import io#导入redis数据库 import redis#定义地址和端口 host = &#39;127.0.0.1&#39;port = 6379#建立redis连接 r = redis.Redis(host=host,port=port)#定义验证码 class MyCode(View):#定义随机验证颜色 def get_random_color(self):R = random.randrange(255)G = random.randrange(255)B = random.randrange(255)return (R,G,B)#随机验证码 def get(self,request):#画布 img_size = (110,50)#定义颜色类型 image = Image.
  
  <div class="read-more-link">
    <a href="/blog/%E9%9A%8F%E6%9C%BA%E9%AA%8C%E8%AF%81%E7%A0%81/">Read More…</a>
  </div>
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/git%E5%AE%89%E8%A3%85%E4%BB%A5%E5%8F%8A%E5%B8%B8%E7%94%A8%E7%9A%84%E5%91%BD%E4%BB%A4/">Git安装以及常用的命令</a>
  </h1>
  <time datetime="2020-04-25T20:01:49&#43;0800" class="post-date">Sat, Apr 25, 2020</time>
  GIT 安装(版本是：2.26.1-64-bit)   ​	第一步点击安装包
  第二步点击Next
  第三步选定安装位置，然后点击Next
  第四步一些扩展，不需要懂，然后直接点击Next
  第五步在，然后点击Next
  第六步，这些是告诉你用什么编辑器，我们默认编辑器是Vim,所以也不需要动他，然后点击Next
  第七步是配置环境变量就用默认的推荐(Recommended的就行，也不用动,直接Next
  第八步是选择证书，默认是OpenSSL，直接点击Next
  第九步是Checkout风格，我用的是Windows，所以选第一个，如果是Linux就选第二个，然后点击Next
  第十步是选择窗口模式，第一个是迷你窗口，第二个是cmd的命令行，我选择的是默认的迷你窗口，然后点击Next
  第十一步git操作需要不需要系统缓存，选择第一个启用文件系统缓存，选择第二个启用Git凭据管理器，第三个我们不需要就不选择，然后点击install
  然后就开始安装了
  环境变量   找到控制面板主页
  点击系统
  点击左边高级系统管理
  点击下面的环境变量
  编辑用户变量以及编辑系统变量里的path，
  点击右边的新建，把你应用的目录路径添加进去
  然后一直点击确定就好了
  Git卸载   ​	找到控制面板主页
  
  <div class="read-more-link">
    <a href="/blog/git%E5%AE%89%E8%A3%85%E4%BB%A5%E5%8F%8A%E5%B8%B8%E7%94%A8%E7%9A%84%E5%91%BD%E4%BB%A4/">Read More…</a>
  </div>
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/md5/">md5加密方法</a>
  </h1>
  <time datetime="2020-04-24T20:05:06&#43;0800" class="post-date">Fri, Apr 24, 2020</time>
  ##md5加密方法
#导入加密库 import hashlib#md5加密方法 def make_password(mypass):#生成md5对象 md5 = hashlib.md5()#定义加密对象 sign_str = mypass#转码 sign_utf8 = str(sign_str).encode(encoding=&#34;utf-8&#34;)#加密操作 md5.update(sign_utf8)#生成密文 md5_server = md5.hexdigest()return md5_server
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C%E9%80%BB%E8%BE%91/">用户注册逻辑</a>
  </h1>
  <time datetime="2020-04-24T20:05:06&#43;0800" class="post-date">Fri, Apr 24, 2020</time>
  #用户注册逻辑
# 导入视图类 from rest_framework.views import APIView# 导入响应模块 from rest_framework.response import Response# 导入redis模块 import redis#定义注册类 class Register(APIView):# 请求模式为GET def get(self,request):#接收参数 username = request.GET.get(&#39;username&#39;,&#39;未收到用户名&#39;)password = request.GET.get(&#39;password&#39;,&#39;未收到密码&#39;)code = request.GET.get(&#39;code&#39;,&#39;未收到验证码&#39;)#从session中获取验证码 session_code = request.session.get(&#39;code&#39;,None)print(session_code)#从redis中获取生成好的验证码 mycode = redis.Redis.get(&#39;code&#39;)#转码 mycode = mycode.decode(&#39;utf-8&#39;)#print(mycode) #判断验证码是否输入正确 if code != mycode:res = {}res[&#39;code&#39;] = 405res[&#39;message&#39;] = &#39;验证码输入错误&#39;return Response(res)#查询数据表里有没有该用户,User为数据表 user = User.
  
  <div class="read-more-link">
    <a href="/blog/%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C%E9%80%BB%E8%BE%91/">Read More…</a>
  </div>
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/vue%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%90%84%E4%B8%AA%E7%BB%84%E4%BB%B6%E5%8F%8Avue%E9%A1%B5%E9%9D%A2%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%AD%E6%B3%95%E7%9B%B8%E5%85%B3/">vue项目的各个组件及，vue页面的一些语法相关</a>
  </h1>
  <time datetime="2020-04-22T20:04:59&#43;0800" class="post-date">Wed, Apr 22, 2020</time>
  vue项目的各个组件及，vue页面的一些语法相关 vue 各个组件的作用:# vue的整体结构为扁平结构 build	# 里面是打包的配置文件 config	# 运行的配置文件，包含有: dev.env.js	#是开发环境 index.js	#是正式环境， prod.env.js	#是灰度环境 dist	#打包后的静态文件，再vue还没有打包的时候这个文件是不存在的 node_modudles	#里是各种vue需要的依赖，  &#39;&#39;&#39; node_modules依赖于package.json去安装，逐行的扫描里面的dependencies，扫描到一个就安装一个(最好是设置国内源再去下载，设置方法：npm set registry &lt;a href=&#34;https://registry.npm.taobao.org&#34;&gt;https://registry.npm.taobao.org&lt;/a&gt; 这是个淘宝源还有别的源，比如清华源也可以设置， 查看当前机器是什么源可以 npm config list 进行查看 &#39;&#39;&#39; src	# 是所有的代码，vue展示的代码和路由都在这里 static	# 是静态文件夹，静态文件都放在这里 .gitignore	# 放在里面的文件名是不会被上传到git的 npm-debug-log	# 报错的一些日志 yarn-debug-log	# vue的一些组件可以用npm装，也可以用yarn来装 vue 中src目录里的文件作用： assets	# 放一些项目用到的样式和文件 bootstrap	# 响应式设计 images	# 用到的图片 components	# 页面组件文件夹，写好的页面都会放在这个文件夹里 router	# 存放着写好页面的路由 index.js	# 配置页面路由的文件 1).path	# 是url，用来访问的路径 2).
  
  <div class="read-more-link">
    <a href="/blog/vue%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%90%84%E4%B8%AA%E7%BB%84%E4%BB%B6%E5%8F%8Avue%E9%A1%B5%E9%9D%A2%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%AD%E6%B3%95%E7%9B%B8%E5%85%B3/">Read More…</a>
  </div>
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/npm%E7%9A%84%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C%E5%8F%8Avue%E7%9A%84%E7%BB%93%E6%9E%84%E6%9E%84%E9%80%A0/">npm的常用操作及vue的结构构造</a>
  </h1>
  <time datetime="2020-04-21T20:04:41&#43;0800" class="post-date">Tue, Apr 21, 2020</time>
  vue基本语法 # 查看node版本 node -v # 查看npm版本 npm -v # 升级npm命令 npm install -g npm # npm换源 npm set registry https://registry.npm.taobao.org # 查看npm配置 npm config list # 查看项目安装了哪些包 npm list # 安装包 npm install 包名 &#39;&#39;&#39; 删除node_modules npm install rimraf -g rimraf node_modules &#39;&#39;&#39; # 安装项目需要的所有依赖 npm install # 卸载安装的包 npm uninstall 包名 # 查看包的详细信息 npm info 包名 # 更新包 npm audit fix # 创建vue项目 vue init webpack 项目名 # 进入vue项目 cd 项目名 &#39;&#39;&#39; build	--vue部署的时候打包用的 config	--配置 dev.
  
  <div class="read-more-link">
    <a href="/blog/npm%E7%9A%84%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C%E5%8F%8Avue%E7%9A%84%E7%BB%93%E6%9E%84%E6%9E%84%E9%80%A0/">Read More…</a>
  </div>
  
</article><article class="post">
  <h1 class="post-title">
    <a href="/blog/%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/">个人博客上传</a>
  </h1>
  <time datetime="2020-04-21T20:04:41&#43;0800" class="post-date">Tue, Apr 21, 2020</time>
  博客！ golang安装  点击golang安装包 一直点击Next， 完成之后去配置环境变量 配置好，golang就完成了  hugo安装  直接解压缩 拷贝到Go的bin目录下 就OK了  # 启动hugo服务 hugo server# 新建一个项目 hugo new site 项目名# 出现Congratulations！说明就新建好了 # 进入项目 cd 项目名# 新建文章 hugo new 文章名称.md&#39;&#39;&#39;项目的文件说明：archetypes	--文本配置文件content	--博客目录data	--数据层面layouts	--布局public	--静态网页生成的都在这里resources	--项目资源static	--静态文件themes	--博客的皮肤hyde	--主题目录staticcss	--网页样式hyde.css	--主题的样式也就是布局config.toml	--用来配置网址的配置colorhunt.co --这个网站可以找颜色&#39;&#39;&#39;# 个人网站上传 # 项目打包到public里 hugo# 进入public cd public#  git init#  git add -A#  git commit -m &#34;描述&#34;# git git remote add origin https://gitee.
  
  <div class="read-more-link">
    <a href="/blog/%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/">Read More…</a>
  </div>
  
</article>
</div>
    </main>

    
  </body>
</html>
